var statisticCtrl  = new XFApp.client();

XFApp.client.prototype.statistic = {
    successCode : "10000",
    page : null,
	chartItemFlag2:false,
	chartItemFlag3:false,
	statisticChar:null,
	urlItems:{
		loadStatisticInfoURL:basePath+"/statistic/queryStatisticInfo_elht",
		loadStatisticChartInfoURL:basePath+"/statistic/queryStatisticChartInfo_elht",
        queryAmtTop : basePath+"/chart/goods/amtTop",
        queryQtyTop : basePath+"/chart/goods/qtyTop"
		
	},
	loadStatisticInfo : function(){
		var _this = this;
		 $.ajax({
	            url: _this.urlItems.loadStatisticInfoURL,
	            type: 'post',
	            dataType: 'json',
	            success: function (result) {
	            	_this.showNum("total_amount",result.totalAmount,0);
	            	_this.showNum("total_count",result.orderCount,0);
	            	_this.showNum("goodsCount",result.goodsCount,0);
	            	_this.showNum("transOrderCount",result.transOrderCount,0);
	            	_this.showNum("enterpriseCommerceCount",result.enterpriseCommerceCount,0);
	            	_this.showNum("enterpriseCommerceCount2",result.enterpriseCommerceCount,0);
	            	_this.showNum("enterpriseLogisticsCount",result.enterpriseLogisticsCount,0);
	            }
		 });
	},
	/**
	 * 
	 * @param id
	 * @param num 显示的数据
	 * @param decimals 小数点位数
	 */
	showNum : function(id,num,decimals){
		var options = {
			useEasing : true,
			useGrouping : true,
			separator : ',', 
			decimal : '.', 
			prefix : '', 
			suffix : ''
		};
		//var numDiv = new CountUp(id, 0, num, decimals, 3, options);
		var numDiv = new CountUp(id, 0, num, decimals, 0, options);
		numDiv.start();
		},
	loadStatisticChartInfo : function(){
		var _this = this;
		var params = {};
		if(typeof(statisticCharInfo) != 'undefined'){
			_this.statisticChar = statisticCharInfo;
			params = {
					lastMonth : statisticCharInfo[statisticCharInfo.length-1].monthTime
			}
		}
		 $.ajax({
	            url: _this.urlItems.loadStatisticChartInfoURL,
	            type: 'post',
	            dataType: 'json',
	            data:params,
	            success: function (result) {
	            	if(result instanceof Array){
	            		_this.statisticChar = result;
	            	}else{
	            		//替换最后一个为当前月份数据
	            		_this.statisticChar[_this.statisticChar.length-1] = result;
	            	}
	            	_this.loadOrderAmountChart(3);
	            }
		 });
	},
	
	/**
	 *	type:1:半年,2:1年,3:3年,4:5年 
	 */
	loadOrderAmountChart : function(type){
		var _this = this;
		//初始化echarts实例
	    var myChart = echarts.init($("#goodsCountChart")[0]);
		var timeData = [];
		var showData = [];
		var timeDataObj = {};
		for(var index = 0;index < _this.statisticChar.length; index++){
			if(type == 2 || type == 3){
				timeData.push(_this.statisticChar[index].monthTime);
				showData.push(_this.statisticChar[index].goodsCount);
			}
		}
		timeData = timeData.map(function (str) {
		        return str;
		});
		var zoomParam = {start:0,end:100};
		if(type == 3){
			zoomParam.start=0;
			zoomParam.end=100;
		}else if(type == 2){
			zoomParam.start=50;
			zoomParam.end=100;
		}
		
	    option = {
	        title: {
	            text: '商品备案数',
	            x: 'center'
	        },
	        tooltip: {
	            trigger: 'axis',
	            formatter: function (params) {
	                return params[0].name + '<br/>'
	                    + params[0].seriesName + ' : ' + params[0].value + ' (个)<br/>';
	            },
	            axisPointer: {
	                animation: false
	            }
	        },
	        legend: {
	            data:['金额'],
	            x: 'left'
	        },
	        dataZoom: [
	                   {   // 这个dataZoom组件，默认控制x轴。
	                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
	                       start: zoomParam.start,      // 左边在 n% 的位置。
	                       end: zoomParam.end         // 右边在n% 的位置。
	                   }
	               ],
	        grid: [{
	            left: 50,
	            right: 50,
	            height: '75%'
	        }],
	        xAxis : [
	            {
	                type : 'category',
	                boundaryGap : false,
	                splitLine:{show: false},
	                axisLine: {onZero: true},
	                data: timeData
	            }
	        ],
	        yAxis : [
	            {
	                name : '数量(个)',
	                type : 'value',
	            }
	        ],
	        series : [
	            {
	                name:'数量',
	                type:'line',
	                symbolSize: 8,
	                hoverAnimation: false,
	                data:showData,
                    itemStyle : {
                        normal : {color:'#2e8dde',
                            lineStyle:{
                                color:'#2e8dde'  
                            }
                        }
                    },
	            }
	        ]
		    };
		    // 使用刚指定的配置项和数据显示图表。
		    myChart.setOption(option);
	},
	
	/**
	 *	type:1:半年,2:1年,3:3年,4:5年 
	 */
	loadOrderCustomerChart : function(type){
		//初始化echarts实例
		var _this = this;
	    var myChart = echarts.init($("#order_transCountChart")[0]);
		var timeData = [];
		var showData1 = [];
		var showData2 = [];
		var timeDataObj1 = {};
		var timeDataObj2 = {};
		for(var index = 0;index < _this.statisticChar.length; index++){
			if(type == 2 || type == 3){
				timeData.push(_this.statisticChar[index].monthTime);
				showData1.push(_this.statisticChar[index].orderCount);
				showData2.push(_this.statisticChar[index].transOrderCount);
			}
		}

		timeData = timeData.map(function (str) {
		        return str;
		});
		var zoomParam = {start:0,end:100};
		if(type == 3){
			zoomParam.start=0;
			zoomParam.end=100;
		}else if(type == 2){
			zoomParam.start=50;
			zoomParam.end=100;
		}
		
	    option = {
	        title: {
	            text: '订单运单数',
	            x: 'center'
	        },
	        tooltip: {
	            trigger: 'axis',
	            axisPointer: {
	                animation: false
	            }
	        },
	        legend: {
	            data:['订单数','运单数'],
	            x: 'left'
	        },
	        dataZoom: [
	                   {   // 这个dataZoom组件，默认控制x轴。
	                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
	                       start: zoomParam.start,      // 左边在 n% 的位置。
	                       end: zoomParam.end         // 右边在n% 的位置。
	                   }
	               ],
	        grid: [{
	            left: 50,
	            right: 50,
	            height: '75%'
	        }],
	        xAxis : [
	            {
	                type : 'category',
	                boundaryGap : false,
	                axisLine: {onZero: true},
	                splitLine:{show: false},
	                data: timeData
	            }
	        ],
	        yAxis : [
				{
				    name : '个/个',
				    type : 'value',
				}
	        ],
	        series : [
				{
				    name:'订单数',
				    type:'line',
				    symbolSize: 8,
				    hoverAnimation: false,
				    data:showData1,
                    itemStyle : {  
                        normal : {color:'#2e8dde',
                            lineStyle:{  
                                color:'#2e8dde'  
                            }  
                        }  
                    },
				},
	            {
	                name:'运单数',
	                type:'line',
	                symbolSize: 8,
	                hoverAnimation: false,
	                data:showData2,
                    itemStyle : {  
                        normal : {color:'#35ba75',
                            lineStyle:{  
                                color:'#35ba75'  
                            }  
                        }  
                    },
	            }
	        ]
		    };
		    // 使用刚指定的配置项和数据显示图表。
		    myChart.setOption(option);
	},
	
	/**
	 *	type:1:半年,2:1年,3:3年,4:5年 
	 */
	loadTransPackageChart : function(type){
		//初始化echarts实例
	    var myChart = echarts.init($("#enterpriseCountChart")[0]);
		var timeData = [];
		var showData = [];
		var timeDataObj = {};
		for(var index = 0;index < _this.statisticChar.length; index++){
			if(type == 2 || type == 3){
				timeData.push(_this.statisticChar[index].monthTime);
				showData.push(_this.statisticChar[index].logisticsCount);
			}
		}
		timeData = timeData.map(function (str) {
		        return str;
		});
		var zoomParam = {start:0,end:100};
		if(type == 3){
			zoomParam.start=0;
			zoomParam.end=100;
		}else if(type == 2){
			zoomParam.start=50;
			zoomParam.end=100;
		}
		
	    option = {
	        title: {
	            text: '备案企业数',
	            x: 'center'
	        },
	        tooltip: {
	            trigger: 'axis',
	            formatter: function (params) {
	                return params[0].name + '<br/>'
	                    + params[0].seriesName + ' : ' + params[0].value + ' (个)<br/>';
	            },
	            axisPointer: {
	                animation: false
	            }
	        },
	        legend: {
	            data:['个数'],
	            x: 'left'
	        },
	        dataZoom: [
	                   {   // 这个dataZoom组件，默认控制x轴。
	                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
	                       start: zoomParam.start,      // 左边在 n% 的位置。
	                       end: zoomParam.end         // 右边在n% 的位置。
	                   }
	               ],
	        grid: [{
	            left: 50,
	            right: 50,
	            height: '75%'
	        }],
	        xAxis : [
	            {
	                type : 'category',
	                boundaryGap : false,
	                splitLine:{show: false},
	                axisLine: {onZero: true},
	                data: timeData
	            }
	        ],
	        yAxis : [
	            {
	                name : '数量(个)',
	                type : 'value',
	            }
	        ],
	        series : [
	            {
	                name:'数量',
	                type:'line',
	                symbolSize: 8,
	                hoverAnimation: false,
	                data:showData,
                    itemStyle : {
                        normal : {color:'#2e8dde',
                            lineStyle:{
                                color:'#2e8dde'  
                            }
                        }
                    },
	            }
	        ]
		    };
		    // 使用刚指定的配置项和数据显示图表。
		    myChart.setOption(option);
	},
	bindEvent:function(){
		var _this = this;
		$("#time_switch1>a").on("click",function(){
			if(!$(this).hasClass("active")){
				$("#time_switch1>a").removeClass("active");
				$(this).addClass("active");
				var type = $(this).index()+1;
				if(type==1){
					 $.ajax({
				            url: basePath+"/statistic/queryGoodsStatisticChartByDay",
				            type: 'post',
				            dataType: 'json',
				            success: function (result) {
				        		var timeData = [];
				        		var showData = [];
				    			for(var index = 0;index <result.length; index++){
				    				timeData.push(result[index].day);
				    				showData.push(result[index].goodsCount);
				    			}
				    			var zoomParam = {start:0,end:100};
				    			var myChart = echarts.init($("#goodsCountChart")[0]);
				    		    option = {
				    			        title: {
				    			            text: '商品备案数',
				    			            x: 'center'
				    			        },
				    			        tooltip: {
				    			            trigger: 'axis',
				    			            formatter: function (params) {
				    			                return params[0].name + '日<br/>'
				    			                    + params[0].seriesName + ' : ' + params[0].value + ' (个)<br/>';
				    			            },
				    			            axisPointer: {
				    			                animation: false
				    			            }
				    			        },
				    			        legend: {
				    			            data:['金额'],
				    			            x: 'left'
				    			        },
				    			        dataZoom: [
			    			                   {   // 这个dataZoom组件，默认控制x轴。
			    			                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
			    			                       start: zoomParam.start,      // 左边在 n% 的位置。
			    			                       end: zoomParam.end         // 右边在n% 的位置。
			    			                   }
			    			               ],
				    			        grid: [{
				    			            left: 50,
				    			            right: 50,
				    			            height: '75%'
				    			        }],
				    			        xAxis : [
				    			            {
				    			                type : 'category',
				    			                boundaryGap : false,
				    			                splitLine:{show: false},
				    			                axisLine: {onZero: true},
				    			                data: timeData,
				    			                axisLabel:{
				    			                	//X轴刻度配置，自动根据刻度个数和宽度自动设置间隔个数
				    			                	interval:2
				    			                }
				    			            }
				    			        ],
				    			        yAxis : [
				    			            {
				    			                name : '数量(个)',
				    			                type : 'value',
				    			            }
				    			        ],
				    			        series : [
				    			            {
				    			                name:'数量',
				    			                type:'line',
				    			                symbolSize: 8,
				    			                hoverAnimation: false,
				    			                data:showData,
				    		                    itemStyle : {
				    		                        normal : {color:'#2e8dde',
				    		                            lineStyle:{
				    		                                color:'#2e8dde'  
				    		                            }
				    		                        }
				    		                    },
				    			            }
				    			        ]
				    				};
			    				    // 使用刚指定的配置项和数据显示图表。
			    				    myChart.setOption(option);

				            }
					 });
				}else{
					_this.loadOrderAmountChart(type);
				}
			}
		});
		$("#time_switch2>a").on("click",function(){
			if(!$(this).hasClass("active")){
				$("#time_switch2>a").removeClass("active");
				$(this).addClass("active");
				var type = $(this).index()+1;
				if(type==1){
					 $.ajax({
				            url: basePath+"/statistic/queryOrderTrandsStatisticChartByDay",
				            type: 'post',
				            dataType: 'json',
				            success: function (result) {
				        		var timeData = [];
				        		var showData1 = [];
				        		var showData2 = [];
				    			for(var index = 0;index <result.length; index++){
				    				timeData.push(result[index].day);
				    				showData1.push(result[index].orderCount);
				    				showData2.push(result[index].transOrderCount);
				    			}
				    			var zoomParam = {start:0,end:100};
				    			var myChart = echarts.init($("#order_transCountChart")[0]);
				    		    option = {
				    			        title: {
				    			            text: '订单运单数',
				    			            x: 'center'
				    			        },
				    			        tooltip: {
				    			            trigger: 'axis',
				    			            axisPointer: {
				    			                animation: false
				    			            }
				    			        },
				    			        legend: {
				    			            data:['订单数','运单数'],
				    			            x: 'left'
				    			        },
				    			        dataZoom: [
				    			                   {   // 这个dataZoom组件，默认控制x轴。
				    			                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
				    			                       start: zoomParam.start,      // 左边在 n% 的位置。
				    			                       end: zoomParam.end         // 右边在n% 的位置。
				    			                   }
				    			               ],
				    			        grid: [{
				    			            left: 50,
				    			            right: 50,
				    			            height: '75%'
				    			        }],
				    			        xAxis : [
				    			            {
				    			                type : 'category',
				    			                boundaryGap : false,
				    			                axisLine: {onZero: true},
				    			                splitLine:{show: false},
				    			                data: timeData,
				    			                axisLabel:{
				    			                	//X轴刻度配置，自动根据刻度个数和宽度自动设置间隔个数
				    			                	interval:2
				    			                }
				    			            }
				    			        ],
				    			        yAxis : [
				    						{
				    						    name : '个/个',
				    						    type : 'value',
				    						}
				    			        ],
				    			        series : [
				    						{
				    						    name:'订单数',
				    						    type:'line',
				    						    symbolSize: 8,
				    						    hoverAnimation: false,
				    						    data:showData1,
				    		                    itemStyle : {
				    		                        normal : {color:'#2e8dde',
				    		                            lineStyle:{
				    		                                color:'#2e8dde'  
				    		                            }
				    		                        }
				    		                    },
				    						},
				    			            {
				    			                name:'运单数',
				    			                type:'line',
				    			                symbolSize: 8,
				    			                hoverAnimation: false,
				    			                data:showData2,
				    		                    itemStyle : {
				    		                        normal : {color:'#35ba75',
				    		                            lineStyle:{
				    		                                color:'#35ba75'  
				    		                            }
				    		                        }
				    		                    },
				    			            }
				    			        ]
				    				    };
				    		    		
				    				    // 使用刚指定的配置项和数据显示图表。
				    				    myChart.setOption(option);

				            }
					 });
				}else{
					_this.loadOrderCustomerChart(type);
				}
			}
		});
		$("#time_switch3>a").on("click",function(){
			if(!$(this).hasClass("active")){
				$("#time_switch3>a").removeClass("active");
				$(this).addClass("active");
				var type = $(this).index()+1;
				if(type==1){
					 $.ajax({
				            url: basePath+"/statistic/queryEnterpirseStatisticChartByDay",
				            type: 'post',
				            dataType: 'json',
				            success: function (result) {
				        		var timeData = [];
				        		var showData = [];
				    			for(var index = 0;index <result.length; index++){
				    				timeData.push(result[index].day);
				    				showData.push(result[index].commerceCount+result[index].logisticsCount);
				    			}
				    			var zoomParam = {start:0,end:100};
				    			var myChart = echarts.init($("#enterpriseCountChart")[0]);
				    		    option = {
				    			        title: {
				    			            text: '备案企业数',
				    			            x: 'center'
				    			        },
				    			        tooltip: {
				    			            trigger: 'axis',
				    			            formatter: function (params) {
				    			                return params[0].name + '日<br/>'
				    			                    + params[0].seriesName + ' : ' + params[0].value + ' (个)<br/>';
				    			            },
				    			            axisPointer: {
				    			                animation: false
				    			            }
				    			        },
				    			        legend: {
				    			            data:['个数'],
				    			            x: 'left'
				    			        },
				    			        dataZoom: [
				    			                   {   // 这个dataZoom组件，默认控制x轴。
				    			                       type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
				    			                       start: zoomParam.start,      // 左边在 n% 的位置。
				    			                       end: zoomParam.end         // 右边在n% 的位置。
				    			                   }
				    			               ],
				    			        grid: [{
				    			            left: 50,
				    			            right: 50,
				    			            height: '75%'
				    			        }],
				    			        xAxis : [
				    			            {
				    			                type : 'category',
				    			                boundaryGap : false,
				    			                splitLine:{show: false},
				    			                axisLine: {onZero: true},
				    			                data: timeData,
				    			                axisLabel:{
				    			                	//X轴刻度配置，自动根据刻度个数和宽度自动设置间隔个数
				    			                	interval:2
				    			                }
				    			            }
				    			        ],
				    			        yAxis : [
				    			            {
				    			                name : '数量(个)',
				    			                type : 'value',
				    			            }
				    			        ],
				    			        series : [
				    			            {
				    			                name:'数量',
				    			                type:'line',
				    			                symbolSize: 8,
				    			                hoverAnimation: false,
				    			                data:showData,
				    		                    itemStyle : {
				    		                        normal : {color:'#2e8dde',
				    		                            lineStyle:{
				    		                                color:'#2e8dde'  
				    		                            }
				    		                        }
				    		                    },
				    			            }
				    			        ]
				    				    };
				    		    		
				    				    // 使用刚指定的配置项和数据显示图表。
				    				    myChart.setOption(option);

				            }
					 });
				}else{
					_this.loadTransPackageChart(type);
				}
			}
		});
		$("#chart_type_switch>a").on("click",function(){
			var index = $(this).index()+1;
			if(!$(this).hasClass("active")){
				$("#chart_type_switch>a").removeClass("active");
				$(this).addClass("active");
				$("div[id^='tabChart']").css("display","none");
				$("#tabChart"+index).css("display","");
				if(index == 2 && _this.chartItemFlag2 == false){
					_this.chartItemFlag2 = true;
					_this.loadOrderCustomerChart(3);
				}
				if(index == 3 && _this.chartItemFlag3 == false){
					_this.chartItemFlag3 = true;
					_this.loadTransPackageChart(3);
				}
			}
		});
	},
	
    showGoodsChart1 : function(result){
		var myChart = echarts.init(document.getElementById('goodsChart1'));
        var option = {
        		backgroundColor: 'rgba(128, 128, 128, 0)', //#1a283f
        	    /*title : {
        	        text: 'top10品类销售金额(USD)',
        	        x:'center',
        	        padding : 55
        	    },*/
        	    tooltip : {
        	        trigger: 'item',
        	        formatter: "{a} <br/>{b} : {c} ({d}%)"
        	    },
        	    legend: {
        	        orient : 'vertical',
        	        align:'left',
        	        zindex : -1,
        	        x: 'right',
        	        data:[]
        	    },
        	    calculable : true,
        	    series : [
        	        {
        	            name:'品类销售金额(USD)',
        	            type:'pie',
        	            radius: ['50%', '70%'],
        	            center: ['40%', '50%'],
        	            label: {
        	                normal: {
        	                    show: false,
        	                    position: 'center'
        	                },
        	                emphasis: {
        	                    show: true,
        	                    textStyle: {
        	                        fontSize: '20',
        	                        fontWeight: 'bold'
        	                    }
        	                }
        	            },
        	            labelLine: {
        	                normal: {
        	                    show: false
        	                }
        	            }
        	        }
        	    ]
        	};
        for(var i = 0; i < result.length; i++){
        	result[i].name="NO"+(i+1)+":"+result[i].name;
            option.legend.data.push(result[i].name);
        }
        option.series[0].data=result;
        myChart.setOption(option);
	},
    GoodsChart1 : function(){
        _this = this;
        $.ajax({
            url:_this.urlItems.queryAmtTop,
            data:$("#searchForm").serialize(),
            type:'get',
            cache:false,
            dataType:'json',
            success:function(data) {
                if(data.isSuccess){
                    var result = data.result;
                    if(result.length==0){
                    	result = [ {
                    	    "name" : "电子及家电类",
                    	    "value" : 3318.36
                    	  }, {
                    	    "name" : "五金工具类",
                    	    "value" : 1099.15
                    	  }, {
                    	    "name" : "车辆及配件类",
                    	    "value" : 418.0
                    	  } ];
                    }
                    _this.showGoodsChart1(result);
                }
            },
            error : function() {
                window.webDialogUtil.alert("提示","操作失败");
            }
        });
    },
	showGoodsChart2 : function(result){
		var myChart = echarts.init(document.getElementById('goodsChart2'));
        var option = {
        	    backgroundColor: 'rgba(128, 128, 128, 0)', //#1a283f
        	   /* title : {
        	        text: 'top10商品出口',
        	        x:'center',
        	        padding : 55
        	    },*/
        	    tooltip : {
        	        trigger: 'item',
        	        formatter: "{a} <br/>{b} : {c} ({d}%)"
        	    },
        	    legend: {
        	        orient : 'vertical',
        	        align:'left',
        	        zindex : -1,
        	        x: 'right',
        	        data:[]
        	    },
        	    calculable : true,
        	    series : [
        	        {
        	            name:'商品出口量',
        	            type:'pie',
        	            radius: ['50%', '70%'],
        	            center: ['40%', '50%'],
        	            label: {
        	                normal: {
        	                    show: false,
        	                    position: 'center'
        	                },
        	                emphasis: {
        	                    show: true,
        	                    textStyle: {
        	                        fontSize: '20',
        	                        fontWeight: 'bold'
        	                    }
        	                }
        	            },
        	            labelLine: {
        	                normal: {
        	                    show: false
        	                }
        	            }
        	        }
        	    ]
        	};
        for(var i = 0; i < result.length; i++){
        	result[i].name="NO"+(i+1)+":"+result[i].name;
            option.legend.data.push(result[i].name);
        }
        option.series[0].data=result;
        myChart.setOption(option);
	},
    GoodsChart2 : function(){
        _this = this;
        $.ajax({
            url:_this.urlItems.queryQtyTop,
            data:$("#searchForm").serialize(),
            type:'get',
            cache:false,
            dataType:'json',
            success:function(data) {
                if(data.isSuccess){
                    var result = data.result;
                    if(result.length==0){
                    	result = [ {
                    	    "name" : "电子及家电类",
                    	    "value" : 1157.0
                    	  }, {
                    	    "name" : "五金工具类",
                    	    "value" : 127.0
                    	  }, {
                    	    "name" : "车辆及配件类",
                    	    "value" : 30.0
                    	  } ];
                    }
                    _this.showGoodsChart2(result);
                }
            },
            error : function() {
                window.webDialogUtil.alert("提示","操作失败");
            }
        });
    }
}

$(function(){
	require.config({
	        paths: {
	            echarts: basePath+"/plugins/echarts"
	        }
	});
	statisticCtrl.statistic.GoodsChart1();
	statisticCtrl.statistic.GoodsChart2();
	statisticCtrl.statistic.bindEvent();
	statisticCtrl.statistic.loadStatisticChartInfo();
	statisticCtrl.statistic.loadStatisticInfo();
});